[初心者向け]コードを書かなくてもOSSに貢献!Githubで管理されているOSSにIssue報告してみた

[初心者向け]コードを書かなくてもOSSに貢献!Githubで管理されているOSSにIssue報告してみた

OSSへの貢献、色々な方法があると知れました
Clock Icon2024.04.19

はじめに

データアナリティクス事業本部 BIチームのkariyaです。

OSSを使用する中で、バグらしきものがあるけれど技術的に自分ではコードが修正できないという時はありませんか?

そんな時に初心者でもできるOSSへの貢献方法、Issue報告をやってみました。

今回起きた事象についても触れていますが、報告時に気を付けたポイントなど、別のOSSでも参考になればと経緯を残してみます。

使用したOSS:AWS Vault

困っていたこと

Windowsのコマンドプロンプトで、AWS Vaultを使用して、1Passwordに保存したAWSのMFAを取得しようとしたところ、エラーが発生しました。

~/.aws/configファイルの設定

[profile common]
region=ap-northeast-1
output=json
mfa_serial=arn:aws:iam::11111111111:mfa/<IAMユーザ名>
mfa_process=op read "op://Private/xxxxxxxxxx?attribute=otp" //この行を入れるとエラーになる
role_session_name=<ロール名>

実行したコマンドはこちらです。

aws-vault exec common --json --prompt=terminal

実行時に、こちらのエラーが出ていました。

aws-vault: error: exec: Failed to get credentials for common: process provider: exec: "/bin/sh": file does not exist

社内で教えて頂いたこと

こちらのエラーについて、社内で下記2点を教えていただきました。

mfa_processを実行する箇所で、"/bin/sh"以外の考慮がされていない

実行時に、Unix系のOSで使用される"/bin/sh"を使用する実装となっていました。

 cmd := exec.Command("/bin/sh", "-c", processCmd) 

同じOSSの他の箇所では、対応した形跡がある

Windowsならコマンドプロンプト、それ以外なら/bin/shを使用すると記載されている箇所がありました。

if runtime.GOOS == "windows" {
	command = "cmd.exe"
} else {
	command = "/bin/sh"
}

つまり、mfa_processの中でも同様の実装を行えば、今回のエラーが解消できるのではと理解しました。

ただし実装方法は分からないため、今回はIssue報告をすることにしました。

報告にあたり気を付けたこと

なるべく短時間でこちらの意図が伝わるよう、以下に気を付けて報告しました。

再現可能なこと

実行環境、設定内容が明確になるよう、Windowsのコマンドプロンプトを使用したと明記しました。

報告内容がシンプルなこと

当初、~/.aws/configファイルの設定では、プロファイルから別のプロファイルを読み込みしているなど、運用上は必要なものの若干読みにくい箇所がありました。 報告を短時間で読めるよう、エラーが再現できる最低限必要な設定に変更しました。

修正のヒントになる部分があること(分かっていれば)

今回は社内で「ここが怪しいね」という情報を頂けたので記載していますが、自力では見つけられていなかったです。

修正箇所が分かっている場合は、こちらも記載するとより親切でしょう。

公開して良い情報しか入っていないこと

設定ファイルにはAWSアカウントやユーザー名などが入っているため、削除して別の文字に変更しました。

報告した内容

実際に報告した内容がこちらです。

おわりに

OSSのIssue報告をする方法についてまとめてみました。

なお、今回のエラーに遭遇した際、どうしようかChatGPTに下記の相談をしました。

OSSに問題があることが分かりましたが、gitを使ったことが無く、またコードの修正方法も分かりません。OSSに貢献する方法はありますか?

ChatGPTの回答

はい、OSS(オープンソースソフトウェア)に貢献する方法はたくさんあります!Gitを使ったことがない場合でも、以下の方法で貢献できます。

バグレポート: OSSの問題を見つけたら、それを報告してください。バグトラッカー、Issueページ、または開発者のコンタクト方法を利用して報告します。問題が再現可能な場合は、その再現手順を提供してください。
ドキュメントの改善: プロジェクトのドキュメントが不足している、または不正確な場合は、それを改善することができます。ドキュメントの改善は、開発者にとって非常に有益です。
テストの追加: テストが不足している場合、新しい機能や修正が正常に動作することを確認するテストを追加することができます。これはコードの変更がなくてもできる貢献です。
コードのレビュー: コードの修正方法が分からなくても、他の開発者が提出したコードのレビューを行うことができます。コードレビューは開発者にとって非常に有益であり、品質を向上させます。
ドキュメントの翻訳: プロジェクトが複数の言語で利用可能であり、あなたの母国語がその中に含まれていない場合は、ドキュメントを翻訳することができます。
コミュニティのサポート: プロジェクトのコミュニティフォーラムやチャットルームで他のユーザーの質問に答えたり、サポートを提供したりすることも貢献になります。
これらの方法は、Gitの知識がなくても実行できるものです。そして、それぞれがOSSの成長に貢献します。あなたのスキルや興味に合わせて、どの方法が最も適しているか考えてみてください。

今回はバグレポートにあたるIssue報告をしましたが、今後も自分でできることがないかという視点も持ってOSSに触れていきたいと思いました。

最後までお読み頂きありがとうございました。
少しでも参考になりましたら嬉しいです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.